// export function fn(str: string) {
//   console.log(str)
// }

// function getter(callback: (str: string) => void ) {
//   callback('123')
// }

// getter(fn)

// 调用签名
export function dosomeing(a: string) {
  console.log(a);
}

dosomeing.description = "我是函数的描述属性";

interface Desc {
  description: string;
  (b: string): void;
}

function fn(callback: Desc) {}

fn(dosomeing);

// 构造签名

interface newPerson {
  new (name: string, age: string): void
}

function newGetter(Callback: newPerson) {
  return new Callback('1', '2')
}

function Person(name: string, age: string) {}

// newGetter(Person);
